/*
 * Copyright (c) 2001, 2002 Boris Pruessmann and others. All rights reserved.
 * This program and the accompanying materials are made available under the
 * terms of the Common Public License v0.5 which accompanies this distribution,
 * and is available at http://www.eclipse.org/legal/cpl-v05.html
 * 
 * Contributors: Boris Pruessmann - Initial implementation.
 */
package net.sourceforge.perforce.core.api;

/**
 * Interface descriping the perforce client form.
 * 
 * @version $Revision: 488 $
 * @author <a href="mailto:dcorbin@users.sourceforge.net">David Corbin</a>
 * @author <a href="mailto:bpruessmann@users.sourceforge.net">Boris
 *         Pruessmann</a>
 */
public interface IClientForm {
  /**
   * Returns the date the client was last used in any way.
   * 
   * @return the date of last access.
   */
  String getAccess();

  /**
   * Call this method to retrieve the client name.
   * 
   * @return the name of the client.
   */
  String getClient();

  /**
   * Returns a short description of the client (optional).
   * 
   * @return the short description.
   */
  String getDescription();

  /**
   * Returns the host to which the client spec belongs. If set, restricts access
   * to the named host.
   * 
   * @return the name of the host.
   */
  String getHost();

  /**
   * Returns the text file line endings on client.
   * 
   * @return local/unix/mac/win/share
   */
  String getLineEnd();

  /**
   * Returns the client's options.
   * 
   * @return the option string.
   */
  String getOptions();

  /**
   * Call this method to retrieve the user who created this client.
   * 
   * @return the creator of the client.
   */
  String getOwner();

  /**
   * Call this to retrieve the base directory of the client workspace.
   * 
   * @return the base directory of the workspace.
   */
  String getRoot();

  /**
   * Returns the date the specification was last modified.
   * 
   * @return the modification date.
   */
  String getUpdate();

  /**
   * Lines to map depot files into the client workspace.
   * 
   * @return the client view mappings.
   */
  String[] getView();
}
